package mc.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.collections.FactoryUtils;
import org.apache.commons.collections.list.LazyList;


public class Pacjent implements Serializable {

	
	private static final long serialVersionUID = 7363116983717483770L;
	private int id;
	private String imie;
	private String nazwisko;
	private String pesel;
	private Date dataurodzenia;
	private String tel_kom;
	private String nfz;
	private String email;
	private Set<Rozpoznanie> rozpoznania = new HashSet<Rozpoznanie>(0);
	private List adresy = LazyList.decorate(new ArrayList(),FactoryUtils.instantiateFactory(Adres.class));
	private Set<Swiadczenie> swiadczenia = new HashSet<Swiadczenie>(0);
	private int version;
	
	public int getVersion() {
		return version;
	}
	public void setVersion(int version) {
		this.version = version;
	}
	
	public void addAdres(Adres a){
		
		a.setPacjent(this);
		this.getAdresy().add(a);
	}
	
	public void addRozpoznanie(Rozpoznanie r){
		
		r.setPacjent(this);
		this.getRozpoznania().add(r);
		
	}
	
	public Set<Swiadczenie> getSwiadczenia() {
		return swiadczenia;
	}

	public void setSwiadczenia(Set<Swiadczenie> swiadczenia) {
		this.swiadczenia = swiadczenia;
	}

	public List<Adres> getAdresy() {
		return adresy;
	}

	public void setAdresy(List<Adres> adresy) {
		this.adresy = adresy;
	}

	public Date getDataurodzenia() {
		return dataurodzenia;
	}
	public void setDataurodzenia(Date dataurodzenia) {
		this.dataurodzenia = dataurodzenia;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getImie() {
		return imie;
	}
	public void setImie(String imie) {
		this.imie = imie;
	}
	public String getNazwisko() {
		return nazwisko;
	}
	public void setNazwisko(String nazwisko) {
		this.nazwisko = nazwisko;
	}
	public String getPesel() {
		return pesel;
	}
	public void setPesel(String pesel) {
		this.pesel = pesel;
	}
	public Set<Rozpoznanie> getRozpoznania() {
		return rozpoznania;
	}
	public void setRozpoznania(Set<Rozpoznanie> rozpoznania) {
		this.rozpoznania = rozpoznania;
	}
	public String getTel_kom() {
		return tel_kom;
	}
	public void setTel_kom(String tel_kom) {
		this.tel_kom = tel_kom;
	}
	public String getNfz() {
		return nfz;
	}
	public void setNfz(String nfz) {
		this.nfz = nfz;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	@Override
	public String toString(){
		
		return (getImie()!=null ? (getImie()+" ") : "")+(getNazwisko()!=null ? (getNazwisko()+" ") : "" )
		+(getPesel()!=null ? ("PESEL: "+getPesel()) : "");
		
	}
}
